<template>
  <div id="app">
    <router-view class="router-view" />
    <incoming-windows @sendMsg="getInfo" />
    <call-out-windows
      :is-show="showOutCall"
      :model-data="modelData"
      @close="showCall = false"
    />
    <password-expiration-reset
      v-if="needReset"
      :reset-rule="resetRule"
      @close="needReset = false"
    />
    <!-- 未激活 -->
    <el-dialog
      title="知情同意书"
      :visible.sync="userInfo&&userInfo.status == 2"
      :show-close="false"
      width="30%"
    >
      <div class="dialogcon">
        南昌市政公用集团中国有限公司（南昌市政公用集团）（作为本知情并同意书项下的个人信息处理者）尊重并保护用户个人信息。在您使用南昌市政公用集团提供的安全防护产品及服务（包含但不限于您参与的线上及线下所有安全防护相关活动和服务），
        南昌市政公用集团请您完整地阅读南昌市政公用集团隐私政策（包括中国子公司附录）并确认如下知情并同意书。</br>
            个人信息的收集和使用： </br>
            鉴于本产品（或服务）的核心业务功能主要目的为：提供的安全防护产品及服务（包含但不限于您参与的线上及线下所有安全防护相关活动和服务）（“主要处理目的”），南昌市政公用集团需要在您注册、登录和/或使用产品/服务和/或参与本次活动时收集您以下个人信息：
            · 姓名 ·所在地区 ·个人电话号码 ·电子邮箱地址 ·职业/职位
            ·工作单位、办公地址 ·照片·昵称 ·社交应用帐户信息（包括微信UnionID,
            OpenID） </br>
        您同意我们为实现主要处理目的收集、使用以上个人信息（包括敏感个人信息）。如果您选择不提供或不同意我们收集、使用以上部分或全部信息，将导致本产品（或服务）无法完全正常运行，我们将无法为您服务，或您将无法继续参与本次活动。
        鉴于本产品和服务的附加业务功能的次要目的为：</br>
        ·开展市场营销（包括向您发送市场信息） ·数据分析 ·数据托管/存储</br>
        ·回应您的请求或查询（“次要处理目的”，与主要处理目的合称为“处理目的”），南昌市政公用集团还需要在您注册、登录和/或使用产品/服务和/或参与本次活动时收集您以下个人信息：
        · 姓名 ·所在地区 ·个人电话号码 ·电子邮箱地址 ·职业/职位</br>
        ·工作单位、办公地址 ·照片·昵称 ·社交应用帐户信息（包括微信UnionID,  OpenID） </br>
        您同意我们为实现次要处理目的收集、使用以上个人信息（包括敏感个人信息）。如果您选择不提供或不同意我们收集、使用以上部分或全部信息，您将无法正常使用相关附加业务功能或无法达到我们拟达到的功能效果/活动次要目的，但这不会影响您使用核心业务功能或实现活动主要目的。
        
        在任何情况下，我们将以对个人权益影响最小的方式处理您的上述个人信息（包括敏感个人信息）。
        
        南昌市政公用集团将直接收集或是从南昌市政公用集团的合作方（包括但不限于南昌市政公用集团的经销商、服务方、京东、天猫、淘宝、微信或其它网络平台）处依法收集您的个人信息。南昌市政公用集团和南昌市政公用集团的合作方将在必要和合理的范围内向您收集个人信息。请您真实、准确地提供个人信息。
        
        在遵守国家法律法规和南昌市政公用集团隐私政策的前提下，南昌市政公用集团将在安全防护产品南昌市政公用集团提供的安全防护产品及服务中接入具备收集个人信息功能的第三方插件。南昌市政公用集团将通过合同形式与该第三方共同确定应满足的个人信息安全要求，以及在个人信息安全方面各自应承担的责任和义务。
        
        南昌市政公用集团可能将自行或者聘请可信赖的第三方向您推送您可能感兴趣的咨讯，例如对南昌市政公用集团相关产品的介绍或促销等信息；或者进行个人信息的统计处理和分析。在聘请第三方的情况下，这些工作将在南昌市政公用集团的监督下进行并遵循南昌市政公用集团隐私政策。在事先征得您同意的前提下，您的个人信息还可能用于其它被您同意的用途。若您不希望接收咨讯推送，可随时通知南昌市政公用集团公司退订。
        个人信息的保密和披露： 
        南昌市政公用集团遵照法律法规对个人信息承担保密的义务，惟当法律法规确有要求或者政府机关提出明确指令的情况下，南昌市政公用集团将适当披露个人信息。
        个人信息的存储： 
        收集的个人信息将保存在南昌市政公用集团在中国境内和/或境外的关联公司（在有限且必要的情况下）的服务器上。南昌市政公用集团将根据国家法律法规和南昌市政公用集团隐私政策的规定在为实现处理目的所必需的最短期限内保存个人信息，并在超出保存期限后对个人信息进行删除或匿名化处理，以保护您的个人信息安全；法律法规另行规定或允许延长其保留期限或您另行同意延长其保留期限的除外。
        个人信息的委托处理、共享、跨境传输： 
        在遵守国家法律法规和南昌市政公用集团隐私政策的前提下，南昌市政公用集团将委托具备足够的数据安全能力的第三方处理个人信息，并且，南昌市政公用集团将通过合同形式约定该第三方应满足的个人信息安全要求，以及在个人信息安全方面应承担的责任和义务；并且，南昌市政公用集团可能会与其雇用提供支持服务或与其合作向客户提供产品和服务的第三方，或与其合作的客户等第三方，共享个人信息。
        
        由于某些第三方位于中国境外，我们必须通过跨境传输的方式将您的个人信息传送至该等第三方。您同意我们向南昌市政公用集团隐私政策中国子公司附录部分附件III所列的中国境外第三方为处理目的以及该附件所列的目的提供该附件所列的个人信息。您可以按照该附件中所列的联系方式向中国境外第三方行使您的权利。
        
        在为实现南昌市政公用集团隐私政策及本知情并同意书所述的处理目的而必要的情况下，我们可能会将个人信息（包括敏感个人信息）传送至南昌市政公用集团在中国境内和/或境外的关联公司的所在地，并在当地令南昌市政公用集团的相关关联公司依法访问、使用和存储。您提供的个人信息可能会经由南昌市政公用集团美国网站的服务器系统（部署于美国）传输与存储。
        
        您同意我们向南昌市政公用集团隐私政策中国子公司附录部分附件II所列的南昌市政公用集团在中国境内或境外的关联公司为处理目的以及该附件所列的目的提供该附件所列的个人信息。您可以按照该附件中所列的联系方式向南昌市政公用集团的关联公司行使您的权利。
       
        南昌市政公用集团在传输和存储敏感个人信息时，将采用加密等安全措施。 </br>
        个人信息的管理和保护： </br>
        根据适用的中国法律法规，视情形而定，您对您的个人信息拥有以下权利：反对权、查阅和知情权、更正权、删除权、撤回同意权、注销账户权、复制权、数据可移植性权利、要求解释说明权，以及适用法律法规要求的其他个人权利，这些权利的适用情形不同。您可以通过联系DPO_CHINA@mmm.com来行使您的权利。
        
        反对权：您可以限制或者拒绝南昌市政公用集团对您的个人信息的处理。您的限制或者拒绝可能导致本产品（或服务）无法完全正常运行，我们可能无法为您提供与您限制或拒绝处理的个人相关的服务，或您可能无法参与或继续参与本次活动的全部或相关环节。
        查阅和知情权：您可以要求南昌市政公用集团确认您的个人信息是否得到处理。您还有权要求查阅您的个人信息和了解以下信息：处理的目的；处理的个人信息类别；已经获得个人信息的第三方身份或类型等。
       
        更正权：如果您的个人信息不正确，您有权让南昌市政公用集团更正您的个人信息。考虑到处理的目的，您还有权将有关您的不完整个人信息予以完整，包括提供补充信息。
        
        删除权：在下列情况下，南昌市政公用集团会主动删除您的个人信息，您也可以要求南昌市政公用集团删除您的个人信息：（i）处理目的已实现、无法实现或为实现处理目的不再必要；（ii）南昌市政公用集团停止提供产品或者服务，南昌市政公用集团取消本次活动或者本次活动已全部完成，或者保存期限已届满；（iii）您撤回同意；（iv）南昌市政公用集团违反法律法规规定，收集、使用、共享、转让、披露个人信息的；（v）南昌市政公用集团违反南昌市政公用集团隐私政策及本知情并同意书的内容，收集、使用、共享、转让、披露个人信息的；以及（vi）法律法规规定的其他情形。但是，法律法规规定的保存期限未届满，或者删除您的个人信息从技术上难以实现的除外，对该等个人信息，南昌市政公用集团会停止除存储和采取必要的安全保护措施之外的处理。
        
        撤回同意权：您可以在使用产品（或服务）或参与活动的过程中撤回对收集上述个人信息的同意授权。但撤回同意不影响撤回前基于同意的个人信息处理。
        
         注销账户权：如您通过注册账户接受南昌市政公用集团提供的产品或服务或参与南昌市政公用集团组织的活动，您可以注销您的账户。您的账户注销后，南昌市政公用集团将及时删除您的个人信息或匿名化处理。因法律法规规定需要留存个人信息的，不能再次将其用于日常业务活动中。 复制权：您可以请求获取您提供的个人信息的副本。
       数据可移植性权利：您可以请求将您的个人信息转移至您指定的个人信息处理者，符合国家网信部门规定条件的，南昌市政公用集团会提供转移的途径。</br>
        
        要求解释说明权：您可以请求南昌市政公用集团对个人信息处理的规则进行解释说明。</br>
       
        南昌市政公用集团重视个人信息安全，将采取适当措施来保护个人信息安全，尽合理努力使个人信息不会被泄漏、毁损或者丢失。与此同时，南昌市政公用集团请您理解在信息网络领域目前不存在“完美”的安全措施。万一发生安全事件导致您的个人信息遭泄露、损毁、篡改、丢失等，我们将立即启动应急预案，及时通知您，采取补救措施，并按照法律规定向政府主管部门报告。
        南昌市政公用集团隐私政策： 
        关于个人信息的更多处理规则，请完整阅读南昌市政公用集团隐私政策以了解更详细的情况。您知晓并同意，南昌市政公用集团将不时地修改更新南昌市政公用集团隐私政策。您可以在南昌市政公用集团官网查阅最新的南昌市政公用集团隐私政策。您持续使用南昌市政公用集团的产品（或服务）或参与活动即表示您同意经修订更新的南昌市政公用集团隐私政策。
        个人信息处理者： 公司名称：[南昌市政公用集团中国有限公司]
      </div>
      <el-checkbox v-model="checked" class="selectout">请认真阅读知情同意书</el-checkbox>
      <span slot="footer" class="dialog-footer">
        <el-button type="primary" @click="sure">确 定</el-button>
      </span>
    </el-dialog>
  </div>
</template>

<script>
import {
  adminUserResetPwdNoticeAPI,
  adminUserforceResetPwdNoticeAPI,
} from "@/api/admin/enterpriseSecuritySetting";
import {hrmEmployeeupdateInformation} from "@/api/hrm/employee";
import PasswordExpirationReset from "@/views/system/components/passwordExpirationReset.vue";

import { mapGetters } from "vuex";
import IncomingWindows from "./callCenter/IncomingWindows";
import CallOutWindows from "./callCenter/CallOutWindows";
import cache from "@/utils/cache";
import WaterMark from "@/utils/waterMark";
import LoginOutMixins from "@/mixins/LoginOut";

export default {
  name: "App",
  components: {
    IncomingWindows,
    CallOutWindows,
    PasswordExpirationReset,
  },
  mixins: [WaterMark, LoginOutMixins],
  data() {
    return {
      showCall: false,
      modelData: {},
      checked: false,
      needReset: false, // 是否强制重置密码
      resetRule: {}, // 是否强制重置密码规则
    };
  },
  computed: {
    ...mapGetters(["addRouters", "userInfo", "moduleData"]),
    showOutCall() {
      if (this.$store.state.crm.isCall) {
        return this.$store.state.crm.showCallOut;
      }
      return false;
    },
  },
  watch: {
    $route(to, from) {
      const { meta, params /*, name*/ } = to;
      let title = this.WKConfig.companyName;
      if (meta.title) {
        title += " - " + meta.title;
      } else if (params && params.title) {
        title += " - " + params.title;
      }
      document.title = title;

      this.$wkPreviewFile.closeViewer(); // 切换页面隐藏图片预览
    },

    addRouters() {
      // 获取密码是否到期需要重置
      this.getPasswordExpiration();
    },
  },
  mounted() {
    this.addDocumentVisibilityChange();
  },
  methods: {
    sure() {
      let that=this
        if(!this.checked){
          this.$message({ message: '请认真阅读知情同意书,并勾选',type: 'warning'})
          return
        }
        hrmEmployeeupdateInformation({ids:[this.userInfo.userId],status:1}).then(res => {
          that.userInfo.status =1
        })
        .catch(() => {
        })
    },
    /**
     * @description: 当前标签再次显现进行的处理逻辑
     * @param {*}
     * @return {*}
     */
    addDocumentVisibilityChange() {
      // 网页当前状态判断
      // hidden,
      var state, visibilityChange;
      if (typeof document.hidden !== "undefined") {
        // hidden = 'hidden'
        visibilityChange = "visibilitychange";
        state = "visibilityState";
      } else if (typeof document.mozHidden !== "undefined") {
        // hidden = 'mozHidden'
        visibilityChange = "mozvisibilitychange";
        state = "mozVisibilityState";
      } else if (typeof document.msHidden !== "undefined") {
        // hidden = 'msHidden'
        visibilityChange = "msvisibilitychange";
        state = "msVisibilityState";
      } else if (typeof document.webkitHidden !== "undefined") {
        // hidden = 'webkitHidden'
        visibilityChange = "webkitvisibilitychange";
        state = "webkitVisibilityState";
      }
      // 添加监听器，在title里显示状态变化
      document.addEventListener(
        visibilityChange,
        () => {
          if (document[state] == "visible") {
            if (cache.updateAxiosHeaders() && this.$route.name === "login") {
              window.location.reload();
            }
          }
          this.$bus.emit("document-visibility", document[state]);
        },
        false
      );
    },

    /**
     * @description: 获取呼出信息
     * @param {*} data
     * @return {*}
     */
    getInfo(data) {
      this.modelData = data;
    },

    /**
     * @description: 获取密码是否到期需要重置
     * @return {*}
     */
    getPasswordExpiration() {
      Promise.all([
        adminUserResetPwdNoticeAPI(),
        adminUserforceResetPwdNoticeAPI(),
      ]).then((resArr) => {
        const resData = resArr[0].data || {};
        const forceResData = resArr[1].data || {};
        if (resData.needReset || forceResData.needReset) {
          this.needReset = true;
          this.resetRule = {
            isExpire: resData.needReset, // 密码过期
            ruleChange: forceResData.needReset, // 密码规则变更
          };
        }
      });
    },
  },
};
</script>

<style lang="scss">
#app {
  position: relative;
  display: flex;
  flex-direction: column;
  width: 100%;
  min-width: 1200px;
  height: 100%;
  min-height: 605px;
  .dialogcon{
     padding:0 10px;
     height:300px;
     overflow-y:auto;
     line-height:23px;
  }
  .selectout{
    margin-top:10px;
    font-size: 12px;
  }
}
</style>
